Examples of Usage

Setting up an interactive web map

library(leaflet)
library(geojsonio)
library(jsonlite)

map = leaflet()
map = addTiles(map) %>% 
      setView(lng = -78.484590, lat = 38.030678, zoom = 13) %>% 
      addMarkers(map, lng=-78.503480, lat=38.035498, popup = "Rotunda")
map

First, the map instance must be created and stored. This action is uncommon to R, being a functional language, but must be done seperately as piping other function calls can’t be done until the map is instantiated. Tiles are then added to the map, the view determined by longitude and latitude, as well as an initial marker to identify the Rotunda. This is a basic marker, many different marker options are available for use ranging in color, shape, and opacity.

Marker Options

##map = addControl(map, 'html', position = c("topleft"), className = "info legend", data = getMapData(map))

Geo JSON

map.geoJSON = map
geoJSON.trains <- "https://opendata.arcgis.com/datasets/8e1338f32fde4037b3898d10d4eac111_56.geojson"
geoJSON.roads <- "https://opendata.arcgis.com/datasets/fa6e17734a784cadbe40a3d9cf674766_30.geojson"

trains <- readLines(geoJSON.trains, warn = FALSE) %>%
  paste(collapse = "\n") %>%
  fromJSON(simplifyVector = FALSE)

roads <- readLines(geoJSON.roads, warn = FALSE) %>%
  paste(collapse = "\n") %>%
  fromJSON(simplifyVector = FALSE)


map.geoJSON = addGeoJSON(map.geoJSON, trains, layerId = NULL, group = NULL, stroke = TRUE,
           color = "444444", weight = 10, opacity = 1, fill = TRUE, fillColor = "444444",
           fillOpacity = 1, dashArray = NULL, smoothFactor = 1, noClip = FALSE, 
           options = pathOptions(), data = getMapData(map.geoJSON))
map.geoJSON = addGeoJSON(map.geoJSON, roads, layerId = NULL, group = NULL, stroke = TRUE,
           color = "yellow", weight = 5, opacity = 0.5, fill = TRUE, fillColor = "yellow",
           fillOpacity = 1, dashArray = NULL, smoothFactor = 1, noClip = FALSE, 
           options = pathOptions(), data = getMapData(map.geoJSON))
map.geoJSON
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQojIyBFeGFtcGxlcyBvZiBVc2FnZQoKIyMjIFNldHRpbmcgdXAgYW4gaW50ZXJhY3RpdmUgd2ViIG1hcApgYGB7ciwgbWVzc2FnZT1GQUxTRX0KbGlicmFyeShsZWFmbGV0KQpsaWJyYXJ5KGdlb2pzb25pbykKbGlicmFyeShqc29ubGl0ZSkKCm1hcCA9IGxlYWZsZXQoKQptYXAgPSBhZGRUaWxlcyhtYXApICU+JSAKICAgICAgc2V0VmlldyhsbmcgPSAtNzguNDg0NTkwLCBsYXQgPSAzOC4wMzA2NzgsIHpvb20gPSAxMykgJT4lIAogICAgICBhZGRNYXJrZXJzKG1hcCwgbG5nPS03OC41MDM0ODAsIGxhdD0zOC4wMzU0OTgsIHBvcHVwID0gIlJvdHVuZGEiKQptYXAKYGBgCkZpcnN0LCB0aGUgbWFwIGluc3RhbmNlIG11c3QgYmUgY3JlYXRlZCBhbmQgc3RvcmVkLiBUaGlzIGFjdGlvbiBpcyB1bmNvbW1vbiB0byBSLCBiZWluZyBhIGZ1bmN0aW9uYWwgbGFuZ3VhZ2UsIGJ1dCBtdXN0IGJlIGRvbmUgc2VwZXJhdGVseSBhcyBwaXBpbmcgb3RoZXIgZnVuY3Rpb24gY2FsbHMgY2FuJ3QgYmUgZG9uZSB1bnRpbCB0aGUgbWFwIGlzIGluc3RhbnRpYXRlZC4gVGlsZXMgYXJlIHRoZW4gYWRkZWQgdG8gdGhlIG1hcCwgdGhlIHZpZXcgZGV0ZXJtaW5lZCBieSBsb25naXR1ZGUgYW5kIGxhdGl0dWRlLCBhcyB3ZWxsIGFzIGFuIGluaXRpYWwgbWFya2VyIHRvIGlkZW50aWZ5IHRoZSBSb3R1bmRhLiBUaGlzIGlzIGEgYmFzaWMgbWFya2VyLCBtYW55IGRpZmZlcmVudCBtYXJrZXIgb3B0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciB1c2UgcmFuZ2luZyBpbiBjb2xvciwgc2hhcGUsIGFuZCBvcGFjaXR5LgoKIyMjIE1hcmtlciBPcHRpb25zCmBgYHtyfQojI21hcCA9IGFkZENvbnRyb2wobWFwLCAnaHRtbCcsIHBvc2l0aW9uID0gYygidG9wbGVmdCIpLCBjbGFzc05hbWUgPSAiaW5mbyBsZWdlbmQiLCBkYXRhID0gZ2V0TWFwRGF0YShtYXApKQoKYGBgCgojIyMgR2VvIEpTT04KYGBge3J9Cm1hcC5nZW9KU09OID0gbWFwCmdlb0pTT04udHJhaW5zIDwtICJodHRwczovL29wZW5kYXRhLmFyY2dpcy5jb20vZGF0YXNldHMvOGUxMzM4ZjMyZmRlNDAzN2IzODk4ZDEwZDRlYWMxMTFfNTYuZ2VvanNvbiIKZ2VvSlNPTi5yb2FkcyA8LSAiaHR0cHM6Ly9vcGVuZGF0YS5hcmNnaXMuY29tL2RhdGFzZXRzL2ZhNmUxNzczNGE3ODRjYWRiZTQwYTNkOWNmNjc0NzY2XzMwLmdlb2pzb24iCgp0cmFpbnMgPC0gcmVhZExpbmVzKGdlb0pTT04udHJhaW5zLCB3YXJuID0gRkFMU0UpICU+JQogIHBhc3RlKGNvbGxhcHNlID0gIlxuIikgJT4lCiAgZnJvbUpTT04oc2ltcGxpZnlWZWN0b3IgPSBGQUxTRSkKCnJvYWRzIDwtIHJlYWRMaW5lcyhnZW9KU09OLnJvYWRzLCB3YXJuID0gRkFMU0UpICU+JQogIHBhc3RlKGNvbGxhcHNlID0gIlxuIikgJT4lCiAgZnJvbUpTT04oc2ltcGxpZnlWZWN0b3IgPSBGQUxTRSkKCgptYXAuZ2VvSlNPTiA9IGFkZEdlb0pTT04obWFwLmdlb0pTT04sIHRyYWlucywgbGF5ZXJJZCA9IE5VTEwsIGdyb3VwID0gTlVMTCwgc3Ryb2tlID0gVFJVRSwKICAgICAgICAgICBjb2xvciA9ICI0NDQ0NDQiLCB3ZWlnaHQgPSAxMCwgb3BhY2l0eSA9IDEsIGZpbGwgPSBUUlVFLCBmaWxsQ29sb3IgPSAiNDQ0NDQ0IiwKICAgICAgICAgICBmaWxsT3BhY2l0eSA9IDEsIGRhc2hBcnJheSA9IE5VTEwsIHNtb290aEZhY3RvciA9IDEsIG5vQ2xpcCA9IEZBTFNFLCAKICAgICAgICAgICBvcHRpb25zID0gcGF0aE9wdGlvbnMoKSwgZGF0YSA9IGdldE1hcERhdGEobWFwLmdlb0pTT04pKQptYXAuZ2VvSlNPTiA9IGFkZEdlb0pTT04obWFwLmdlb0pTT04sIHJvYWRzLCBsYXllcklkID0gTlVMTCwgZ3JvdXAgPSBOVUxMLCBzdHJva2UgPSBUUlVFLAogICAgICAgICAgIGNvbG9yID0gInllbGxvdyIsIHdlaWdodCA9IDUsIG9wYWNpdHkgPSAwLjUsIGZpbGwgPSBUUlVFLCBmaWxsQ29sb3IgPSAieWVsbG93IiwKICAgICAgICAgICBmaWxsT3BhY2l0eSA9IDEsIGRhc2hBcnJheSA9IE5VTEwsIHNtb290aEZhY3RvciA9IDEsIG5vQ2xpcCA9IEZBTFNFLCAKICAgICAgICAgICBvcHRpb25zID0gcGF0aE9wdGlvbnMoKSwgZGF0YSA9IGdldE1hcERhdGEobWFwLmdlb0pTT04pKQptYXAuZ2VvSlNPTgpgYGA=